﻿#ifndef INSTALL_COMMAND_DEVICE_H_
#define INSTALL_COMMAND_DEVICE_H_
#include <ossSocket.h>
#include <hash/ossHashTable.h>
#include "labelDeviceDriver.hpp"

class ImgDrv : public LabelDeviceDriver
{
public:
    ImgDrv(LabelDeviceBase* pParent);
    virtual ~ImgDrv();

    /**
     *      初始化实例的方法
     */
    virtual BOOL DeviceInit(OssJson& initJson) override;

    /**
   *      逆初始化方法
   */
    virtual BOOL DeviceDeinit() override;

    /**
     *      开始主线程
    */
    virtual BOOL DeviceStart() override;

    /**
     *      停止主线程
    */
    virtual BOOL DeviceStop() override;

    //声明消息映射表
    DECLARE_OSS_MESSAGE_MAP()

private:
    /**
	 *		获取安装命令
	 */
	int OnGetShowImg(WPARAM wparam,LPARAM lparam);

    /**
     *      解码图片
     */
    int OnDecodeImg(WPARAM wparam, LPARAM lparam);

    /**
     *      获取图片头域数据，包括分辨率、格式
     */
    int OnGetImgHeaderInfo(WPARAM wparam, LPARAM lparam);

    /**
     *      解码图片(内部消息方式)
     */
    int OnDecodeImg_In(WPARAM wparam, LPARAM lparam);
private:
    BYTE* m_byRgbBuf = nullptr;
    int     m_iRgbBufMax = 0;
    int     m_iWidth = 0;
    int     m_iHeight = 0;
};

#endif